package com.jshan.blog.base.admin.dto;

import com.jshan.blog.valid.LoginAndRegisterGroupValid;
import com.jshan.blog.valid.UpdateGroupValid;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.time.LocalDateTime;

@Data
@Schema(description = "用户信息相关")
public class SysUserDto {


    @NotNull(message = "用户 id 不能为空", groups = {UpdateGroupValid.class})
    private Integer id;

    /**
     * 用户名
     */
    @NotBlank(message = "用户名不能为空!", groups = {LoginAndRegisterGroupValid.class})
    private String username;

    /**
     * 密码
     */
    @NotBlank(message = "密码不能为空", groups = {LoginAndRegisterGroupValid.class})
    private String pwd;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 性别(0 未知 1 男 2 女)
     */
    private Integer sex;

    /**
     * 生日
     */
    private String birthday;

    /**
     * 头像地址
     */
    private String logo;

    /**
     * 年龄，--废弃，以生日为主
     */
    private Integer age;

    /**
     * 身份证
     */
    private String idCard;

    /**
     * 邮箱地址
     */
    private String email;

    /**
     * 账户状态 (如 冻结；禁言；正常。 关联字典表account_status)
     */
    private String accountStatusCd;

    /**
     * 标签（自定义关联到字典表）
     */
    private String userTagCd;

    /**
     * 最近一次登录时间
     */
    private LocalDateTime lastLoginTime;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;


}
